package cn.mw.cmdb.processor;

import cn.mw.cmdb.param.MwInstanceZabbixParam;
import cn.mw.cmdb.param.QueryMonitorValue;
import cn.mw.components.mongodb.mapper.BaseMapper;
import cn.mw.main.api.common.ZabbixDubboService;
import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class MonitorParamContext {
    private boolean RandomName = false;
    private String zabbixProxyId;
    private Map<String,Object> mapParam;
    private List<String> zabbixProxyIdList;

    private List<String> itemNameList;

    private List<String> groupNameList;

    private MwInstanceZabbixParam instanceZabbixParams;

    private QueryMonitorValue queryMonitorParam;

    private BaseMapper baseMapper;

    private ZabbixDubboService zabbixDubboService;

    private Object param;

    //分组前缀
    private String groupPrefix;

    public static MonitorParamContext build() {
        return new MonitorParamContext();
    }

    public boolean isRandomName() {
        return RandomName;
    }

    public MonitorParamContext setRandomName(boolean randomName) {
        RandomName = randomName;
        return this;
    }

    public List<String> getZabbixProxyIdList() {
        return zabbixProxyIdList;
    }

    public void setZabbixProxyIdList(List<String> zabbixProxyIdList) {
        this.zabbixProxyIdList = zabbixProxyIdList;
    }

    public String getZabbixProxyId() {
        return zabbixProxyId;
    }

    public MonitorParamContext setZabbixProxyId(String zabbixProxyId) {
        this.zabbixProxyId = zabbixProxyId;
        return this;
    }

    public ZabbixDubboService getZabbixDubboService() {
        return zabbixDubboService;
    }

    public void setZabbixDubboService(ZabbixDubboService zabbixDubboService) {
        this.zabbixDubboService = zabbixDubboService;
    }

    public String getGroupPrefix() {
        return groupPrefix;
    }

    public void setGroupPrefix(String groupPrefix) {
        this.groupPrefix = groupPrefix;
    }

    public List<String> getGroupNameList() {
        return groupNameList;
    }

    public void setGroupNameList(List<String> groupNameList) {
        this.groupNameList = groupNameList;
    }

    public MwInstanceZabbixParam getInstanceZabbixParams() {
        return instanceZabbixParams;
    }

    public void setInstanceZabbixParams(MwInstanceZabbixParam instanceZabbixParams) {
        this.instanceZabbixParams = instanceZabbixParams;
    }

    public BaseMapper getBaseMapper() {
        return baseMapper;
    }

    public void setBaseMapper(BaseMapper baseMapper) {
        this.baseMapper = baseMapper;
    }

    public Object getParam() {
        return param;
    }

    public void setParam(Object param) {
        this.param = param;
    }
}
